package com.example.response.vo;

import com.example.response.enums.ResultCodeEnum;
import lombok.Getter;

/**
 * 自定义统一响应体：
 * 代码抛出的异常虽然被捕捉并返回了，但是返回的格式却不是我们想要的。如果我们想要接口返回固定格式的报文，就需要自定义相应体。
 * @param <T>
 */
@Getter
public class ResultVO<T> {
    private int code;
    private String msg;
    private T data;
//    未规范响应码和响应信息的做法。----->自定义annotation
    public ResultVO(int code, String msg, T data){
        this.code = code;
        this.msg = msg;
        this.data = data;
    }
    public ResultVO(ResultCodeEnum resultCodeEnum, T data){
        this.code = resultCodeEnum.getCode();
        this.msg = resultCodeEnum.getMsg();
        this.data = data;
    }

    public ResultVO(T data){
        this(ResultCodeEnum.SUCCESS,data);
    }
}
